class Solution {
public:
    int singleNumber(vector<int>& nums) {
        //统计所有数字某一个比特位上1的个数最后将每一个位置上的1个数%3
        int ret = 0;
        for(int i = 0;i<32;i++)
        {
            int cnt = 0;
            for(int num:nums)
            {
                cnt += num>>i&1;
            }//记录每一个数字第i位上1的个数
            ret |= (cnt%3<<i);//将这个位置上的总数1mod3再放到ret的第i位上
        }
        return ret;
    }
};